package com.zhuang.collection.set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetMethod {
	public static void main(String[] args) {
		// 1. 以 Set 接口的实现类 HashSet 来讲解 Set 接口的方法
		// 2. set 接口的实现类的对象(Set 接口对象), 不能存放重复的元素, 可以添加一个 null
		// 3. set 接口对象存放数据是无序(即添加的顺序和取出的顺序不一致)
		// 4. 注意：取出的顺序的顺序虽然不是添加的顺序，但是他的固定.
		Set<String> set = new HashSet<>();
		set.add("john");
		set.add("lucy");
		// 重复
		set.add("john");
		set.add("jack");
		set.add("zk");
		set.add("mary");
		set.add(null);
		set.add(null);// 再次添加 null

		System.out.println("set=" + set);

		// 遍历
		System.out.println("=====使用迭代器====");
		Iterator<String> iterator = set.iterator();
		while (iterator.hasNext()) {
			System.out.println("next=" + iterator.next());
		}

		set.remove(null);
		// 方式 2: 增强 for
		System.out.println("=====增强 for====");
		for (String o : set) {
			System.out.println("o=" + o);
		}
		// set 接口对象，不能通过索引来获取
	}
}
